Cache Yazma Stratejileri
Cache'e yazma işlemi yapıldığında hem cache hem de ana belleği tutarlı tutmak gerekir.
Write-Through (Doğrudan Yazma)
Her yazma işleminde hem cache hem de ana bellek güncellenir.
- Avantaj: Cache ve bellek her zaman tutarlı
- Dezavantaj: Her yazma yavaş (belleğe yazma gerekir)
Write-Back (Geri Yazma)
Sadece cache güncellenir, ana bellek bloğun cache'ten çıkarılacağı zaman güncellenir.
- Avantaj: Yazma işlemi hızlı (sadece cache)
- Dezavantaj: Cache ve bellek geçici olarak tutarsız olabilir
- Dirty Bit: Bloğun değiştirildiğini işaretler
Cache Miss Türleri
- Compulsory Miss: İlk erişim, cache boş
- Capacity Miss: Cache çok küçük, sığmadı
- Conflict Miss: Farklı adresler aynı cache satırına eşlendi
Performans Hesaplama
Average Memory Access Time (AMAT) = Hit Time + (Miss Rate × Miss Penalty)
Örnek:
Hit Time = 1 ns
Miss Rate = 5% = 0.05
Miss Penalty = 100 ns
AMAT = 1 + (0.05 × 100) = 1 + 5 = 6 ns
Örnek:
Hit Time = 1 ns
Miss Rate = 5% = 0.05
Miss Penalty = 100 ns
AMAT = 1 + (0.05 × 100) = 1 + 5 = 6 ns
Cache Performansını Artırma
- Cache boyutunu artır: Daha fazla veri sığar
- Blok boyutunu artır: Spatial locality'den faydalanır
- Associativity artır: Conflict miss'leri azaltır
- Multi-level cache: L1, L2, L3 cache kullan
Write Buffer
Write-through'da belleğe yazma yavaş olduğundan, yazılacak veriler önce write buffer'a konur ve arka planda belleğe yazılır.
Performans Trade-offs
| Özellik | Artırılırsa | Etki |
|---|---|---|
| Cache Boyutu | ↑ Miss rate azalır | ↓ Hit time artar (daha yavaş) |
| Blok Boyutu | ↑ Spatial locality | ↑ Miss penalty artar |
| Associativity | ↓ Conflict miss azalır | ↑ Hit time artar |
Soru 1: Write-Through stratejisinde yazma nereye yapılır?
Soru 2: Write-Back stratejisinin avantajı nedir?
Soru 3: Dirty Bit ne işe yarar?
Soru 4: Compulsory Miss ne demektir?
Soru 5: Capacity Miss ne demektir?
Soru 6: Conflict Miss ne demektir?
Soru 7: AMAT formülü nedir?
Soru 8: Write Buffer ne işe yarar?
Soru 9: Cache boyutu artırılırsa ne olur?
Soru 10: Blok boyutu artırılırsa ne olur?
Write-Through
Her yazma hem cache hem RAM'e
Write-Back
Sadece cache'e yaz, sonra RAM'e gönder
Dirty Bit
Bloğun değiştirildiğini işaretler
Compulsory Miss
İlk erişim miss'i - kaçınılmaz
Capacity Miss
Cache çok küçük, veri sığmadı
Conflict Miss
Adres çakışması nedeniyle miss
AMAT
Hit Time + (Miss Rate × Miss Penalty)
Hit Time
Cache'ten okuma süresi (~1-2ns)
Miss Penalty
RAM'den getirme cezası (~100ns)
Write Buffer
Yazılacak verileri bekletir
Cache boyutu ↑
Miss rate ↓, hit time ↑
Blok boyutu ↑
Spatial locality ↑, miss penalty ↑
Associativity ↑
Conflict miss ↓, hit time ↑
Multi-level cache
L1 + L2 + L3 hiyerarşisi
Performans
AMAT'ı minimize et